package org.projetjava.presentation;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import org.projetjava.metier.model.Lieu;
import org.projetjava.service.ConsultationLieu;
import org.projetjava.service.ConsultationParcours;




public class BoutonRecherche implements ActionListener {

	
	private FenetrePrincipal fenetrePrincipal;
	private ConsultationParcours consultationParcours;
	private ConsultationLieu consultationLieu;
	private Lieu lieu;
	
	private String recherche, critere, type, selection;
	private List<String> resultats = null;
	
	public Lieu getLieu() {
		return lieu;
	}

	public void setLieu(Lieu lieu) {
		this.lieu = lieu;
	}
	

	public void setSelection(String selection) {
		this.selection = selection;
	}
	
	public void setRecherche(String recherche) {
		this.recherche = recherche;
	}
	
	public void setCritere(String critere) {
		this.critere = critere;
	}

	public void setType(String type) {
		this.type = type;
	}
	
	public BoutonRecherche(FenetrePrincipal fenetrePrincipal)
	{
		this.fenetrePrincipal = fenetrePrincipal;
	}

	public void actionPerformed(ActionEvent e) {
		
		RechercheDialogue rd = new RechercheDialogue(null, "Recherche", true , this);
		
		resultats = getListeResultat(this.recherche, this.critere);
		
		ResultatsRechercheDialogue resultatsDialogue = new ResultatsRechercheDialogue(null, "Recherche", true , resultats, this);
		rd = null;
		resultatsDialogue = null;
		
		lieu = consultationLieu.selectionner(selection);
		
		fenetrePrincipal.initAffichageLieu();
		fenetrePrincipal.runAffichageLieu();
		fenetrePrincipal.getAffichageLieu().getCarte().setLieu(lieu);
		
	}
	
	private List<String> getListeResultat(String recherche, String critere)
	{
		if(type == "Lieu")
		{
			if(consultationLieu == null)
			{
				consultationLieu = new ConsultationLieu();
			}
			
			return consultationLieu.rechercher(this.recherche, this.critere);
			
			
			
		}else{
			if(consultationParcours == null)
			{
				consultationParcours = new ConsultationParcours();
			}
			
			return consultationParcours.rechercher(this.recherche, this.critere);
		}
		
	}

	

	
}
